1 Foraging Model

The proportion of time an animal is in a feeding behavioral state.

Process Model

\[Y_{i,t+1} \sim Multivariate Normal(d_{i,t},σ)\]

\[d_{i,t}= Y_{i,t} + γ_{s_{i,g,t}}*T_{i,g,t}*( Y_{i,g,t}- Y_{i,g,t-1} )\]

\[ \begin{matrix} \alpha_{i,1,1} & 1-\alpha_{i,1,1} \\ \alpha_{i,2,1} & 1-\alpha_{i,2,1} \\ \end{matrix} \] \[logit(\phi_{traveling}) = \alpha_{Behavior_{t-1}} * \beta \text{ dive depth}_{i,g,t} \] The behavior at time t of individual i on track g is a discrete draw. \[S_{i,g,t} \sim Cat(\phi_{traveling},\phi_{foraging})\]

Dive information is a mixture model based on behavior (S)

\(\text{Average dive depth}(\psi)\) \[ \psi \sim Normal(dive_{\mu_S},dive_{\tau_S})\]

Dive profiles per indidivuals

Data Statistics before track cut

## # A tibble: 11 x 2
##    Animal     n
##     <int> <int>
##  1 131111    58
##  2 131115   170
##  3 131116   294
##  4 131127  1327
##  5 131128    12
##  6 131130    70
##  7 131132   198
##  8 131133  1237
##  9 131134   279
## 10 131136   964
## 11 154187   275
## [1] 4884

Data statistics after track cut

## # A tibble: 10 x 2
##    Animal     n
##     <int> <int>
##  1 131111    38
##  2 131115   170
##  3 131116   291
##  4 131127  1045
##  5 131130    59
##  6 131132   151
##  7 131133  1161
##  8 131134   246
##  9 131136   825
## 10 154187   269

sink(“Bayesian/Diving.jags”) cat(" model{

pi <- 3.141592653589

#for each if 6 argos class observation error

for(x in 1:6){

##argos observation error##
argos_prec[x,1:2,1:2] <- argos_cov[x,,]

#Constructing the covariance matrix
argos_cov[x,1,1] <- argos_sigma[x]
argos_cov[x,1,2] <- 0
argos_cov[x,2,1] <- 0
argos_cov[x,2,2] <- argos_alpha[x]
}

for(i in 1:ind){
for(g in 1:tracks[i]){

## Priors for first true location
#for lat long
y[i,g,1,1:2] ~ dmnorm(argos[i,g,1,1,1:2],argos_prec[1,1:2,1:2])

#First movement - random walk.
y[i,g,2,1:2] ~ dmnorm(y[i,g,1,1:2],iSigma)

###First Behavioral State###
state[i,g,1] ~ dcat(lambda[]) ## assign state for first obs

#Process Model for movement
for(t in 2:(steps[i,g]-1)){

#Behavioral State at time T
phi[i,g,t,1] <- alpha[state[i,g,t-1]] 
phi[i,g,t,2] <- 1-phi[i,g,t,1]
state[i,g,t] ~ dcat(phi[i,g,t,])

#Turning covariate
#Transition Matrix for turning angles
T[i,g,t,1,1] <- cos(theta[state[i,g,t]])
T[i,g,t,1,2] <- (-sin(theta[state[i,g,t]]))
T[i,g,t,2,1] <- sin(theta[state[i,g,t]])
T[i,g,t,2,2] <- cos(theta[state[i,g,t]])

#Correlation in movement change
d[i,g,t,1:2] <- y[i,g,t,] + gamma[state[i,g,t]] * T[i,g,t,,] %*% (y[i,g,t,1:2] - y[i,g,t-1,1:2])

#Gaussian Displacement in location
y[i,g,t+1,1:2] ~ dmnorm(d[i,g,t,1:2],iSigma)

#number of dives per step length    
#divecount[i,g,t] ~ dpois(lambda_count[state[i,g,t]])

}

#Final behavior state
phi[i,g,steps[i,g],1] <- alpha[state[i,g,steps[i,g]-1]] 
phi[i,g,steps[i,g],2] <- 1-phi[i,g,steps[i,g],1]
state[i,g,steps[i,g]] ~ dcat(phi[i,g,steps[i,g],])

##  Measurement equation - irregular observations
# loops over regular time intervals (t)    

for(t in 2:steps[i,g]){

# loops over observed locations within interval t
for(u in 1:idx[i,g,t]){ 
zhat[i,g,t,u,1:2] <- (1-j[i,g,t,u]) * y[i,g,t-1,1:2] + j[i,g,t,u] * y[i,g,t,1:2]

#for each lat and long
#argos error
argos[i,g,t,u,1:2] ~ dmnorm(zhat[i,g,t,u,1:2],argos_prec[argos_class[i,g,t,u],1:2,1:2])

#for each dive depth
#dive depth at time t
dive[i,g,t,u] ~ dnorm(depth_mu[state[i,g,t]],depth_tau[state[i,g,t]])

#dive speed (max depth/duration)
#duration[i,g,t,u] ~ dnorm(duration_mu[state[i,g,t]],duration_tau[state[i,g,t]])

#Assess Model Fit

#Fit dive discrepancy statistics
eval[i,g,t,u] ~ dnorm(depth_mu[state[i,g,t]],depth_tau[state[i,g,t]])
E[i,g,t,u]<-pow((dive[i,g,t,u]-eval[i,g,t,u]),2)/(eval[i,g,t,u])

dive_new[i,g,t,u] ~ dnorm(depth_mu[state[i,g,t]],depth_tau[state[i,g,t]])T(0.01,)
Enew[i,g,t,u]<-pow((dive_new[i,g,t,u]-eval[i,g,t,u]),2)/(eval[i,g,t,u])

}
}
}
}

###Priors###

#Process Variance
iSigma ~ dwish(R,2)
Sigma <- inverse(iSigma)

##Mean Angle
tmp[1] ~ dbeta(10, 10)
tmp[2] ~ dbeta(10, 10)

# prior for theta in 'traveling state'
theta[1] <- (2 * tmp[1] - 1) * pi

# prior for theta in 'foraging state'    
theta[2] <- (tmp[2] * pi * 2)

##Move persistance
# prior for gamma (autocorrelation parameter)
#from jonsen 2016

##Behavioral States

gamma[1] ~ dbeta(3,2)       ## gamma for state 1
dev ~ dbeta(1,1)            ## a random deviate to ensure that gamma[1] > gamma[2]
gamma[2] <- gamma[1] * dev

#Intercepts
alpha[1] ~ dbeta(1,1)
alpha[2] ~ dbeta(1,1)

#Probability of behavior switching 
lambda[1] ~ dbeta(1,1)
lambda[2] <- 1 - lambda[1]

#Dive Priors
#average max depth
depth_mu[1] ~ dnorm(0.05,0.0001)

#we know that foraging dives are probably 0.1km deeper,
#but are not more than 0.5 km deeper
forage ~ dunif(0.05,0.5)
depth_mu[2] <- depth_mu[1] + forage

#speed = depth/duration priors
#duration_mu[1] ~ dunif(0,3600)
#time_forage~dunif(0,60)
#duration_mu[2] = duration_mu[1] + time_forage 

#Dive counts, there can't be more than about 20 dives in a 6 hour period.
lambda_count[1] ~ dunif(0,20)
lambda_count[2] ~ dunif(0,20)

#depth and duration variance
depth_tau[1] ~ dunif(0,500)
depth_tau[2] ~ dunif(0,500)
duration_tau[1] ~ dunif(0,100)
duration_tau[2] ~ dunif(0,100)

1.1 Argos priors

#longitudinal argos precision, from Jonsen 2005, 2016, represented as precision not sd

#by argos class
argos_sigma[1] <- 11.9016
argos_sigma[2] <- 10.2775
argos_sigma[3] <- 1.228984
argos_sigma[4] <- 2.162593
argos_sigma[5] <- 3.885832
argos_sigma[6] <- 0.0565539

#latitidunal argos precision, from Jonsen 2005, 2016
argos_alpha[1] <- 67.12537
argos_alpha[2] <- 14.73474
argos_alpha[3] <- 4.718973
argos_alpha[4] <- 0.3872023
argos_alpha[5] <- 3.836444
argos_alpha[6] <- 0.1081156

}"
,fill=TRUE)

sink()

##    user  system elapsed 
##   8.118   1.696 240.178

1.2 Chains

1.3 Temporal autocorrelation in foraging

1.3.1 Time foraging as a function of time

1.4 Simulate dive depth

1.5 Simulate dive durations

1.6 Distribution of average dive counts per step

2 Temporal Variation in Dive Behavior

## # A tibble: 6 x 6
## # Groups:   Animal, Track [1]
##   Animal Track  step           timestamp       dive  Behavior
##   <fctr> <chr> <chr>              <dttm>      <dbl>     <chr>
## 1      1     1     1 2016-04-29 03:35:38 0.11566667 Traveling
## 2      1     1     2 2016-04-29 12:25:24 0.08150000 Traveling
## 3      1     1     3 2016-04-29 15:45:06 0.06783333 Traveling
## 4      1     1     4 2016-04-29 23:37:30 0.05400000 Traveling
## 5      1     1     5 2016-04-30 03:50:02 0.06033333 Traveling
## 6      1     1     6 2016-04-30 11:12:00 0.02583333 Traveling

2.1 Diel

2.2 Month

3 Comparison with 2d movement model

##    user  system elapsed 
##   0.365   0.028  39.585

3.1 Chains

Where does the 3d predict foraging that the 2d misses?

Where does the 2d predict foraging that the 3d refines?

  • Get spatial distribution